#include "stdio.h"
#include "unistd.h"
#include "string.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "stdlib.h"

/* 定义按键值 */
#define KEY0VALUE	0XF0
#define INVAKEY		0X00
 /*
 第一个参数是可执行文件 
 第二个参数是设备路径
 第三个参数表示要执行的操作*/
int main(int argc, char *argv[])
{
    int fd,ret;
    char *filename;
    int keyvalue;
    if(argc != 2)
    {
		printf("Error Usage!\r\n");
		return -1;        
    }
    filename = argv[1];
    fd = open(filename,O_RDWR);//打开驱动文件
    if(fd<0)
    {
 	printf("file %s open failed!\r\n", argv[1]);
	return -1;       
    }
    else
    {
    printf("驱动打开成功\r\n");    
    }
    while(1)
    {
        // &keyvalue 指向数据缓冲区的指针
        // sizeof(keyvalue) 数量
        read(fd,&keyvalue,sizeof(keyvalue));
        if(keyvalue == KEY0VALUE)
        {
           printf("KEY0 Press, value = %#X\r\n",keyvalue);
           
        }
    }
    ret = close(fd);
    if(ret < 0)
    {
 	printf("file %s close failed!\r\n", argv[1]);
	return -1;       
    }

    return 0;
}

